import battlegui.PlayerID;
import java.util.ArrayList;

/**
 * Met deze klasse wordt een speler voorgesteld
 * 
 * @author (your name) 
 * @version 1.0
 */
public class Speler
{
    private PlayerID id;
    private ArrayList<Hut> hutten;
    private int aantalLeft;
    private String name;

    /**
     * Constructor for objects of class Speler
     */
    public Speler(PlayerID id, String name)
    {
        this.id = id;
        this.name = name;
        hutten = new ArrayList<Hut>();
        aantalLeft = 0;
    }

    /**
     * Gaat na of alle delen van de hutten geraakt zijn en retourneert een boolean.
     * 
     * @return     false als nog niet alle hutten vernietigd zijn/true las alle hutten kapot zijn.
     */
    public boolean allHit()
    {
        return (aantalLeft == 0);
    }
    
    /**
     * Bouwt een hut op het land van de speler.
     * 
     * @param Hut de hut in kwestie die gebouwd wordt.
     * @return    true als het bouwen gelukt is / false als het mislukt is
     */
    public boolean addHut(Hut hut)
    {
        boolean succes = hutten.add(hut);
        aantalLeft += hut.getLength();
        return succes;
    }
    
    /**
     * Geeft het aantal vakjes dat bebouwd zijn en nog niet kapot geschoten zijn.
     * 
     * @return   het aantal vakjes dat in beslag genomen worden door nog hele delen van hutten.
     */
    public int getNumberLeft()
    {
        return aantalLeft;
    }
    
    /**
     * Retourneert een lijst mat alle hutten van de speler.
     * 
     * @return   een lijst met alle hutten
     */
    public ArrayList<Hut> getHutten()
    {
        return hutten;
    }
    
    /**
     *Vermindert het aantal resterende vakjes met 1.
     */
    public void decreaseNumberLeft()
    {
        aantalLeft --;
    }
    
    /**
     * Geeft de PlayerID terug van de speler
     * 
     * @return   een PlayerID: de PlayerID die gelinkt is aan deze speler
     */
    public PlayerID getPlayerID()
    {
        return id;
    }
    
    /**
     * Geeft de naam van de speler terug
     */
    public String getName()
    {
        return name;
    }
}